This repository was archived by the owner on Jul 1, 2023. It is now read-only.
Remove explicit differentiation parameters. They are no longer required! #33
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We've recently changed the type checker to improve the ergonomics of the
@differentiableattribute.@differentiableattribute when the function has some arguments that do not conform toDifferentiable. Those non-differentiable parameters will be skipped and the rest will be differentiated with respect to.wrt:is not specified,selfis being implicitly included as a differentiation parameter.@differentiablerequirement is not met, the@differentiableattribute fix-it will appear exactly as written in the original declaration instead of the most complex, canonical form. For instance,@differentiableinstead of@differentiable(wrt: (x)).This greatly simplifies libraries and applications that use automatic differentiation. The protocol requirement
Layer.applied(to:in:)becomes as simple as this:This PR updates deep learning APIs to use the simplest form of
@differentiablepossible. Hooray!